/**
 * @author ChaP
 * @date 2019/05/13
 * @describe:
 */
package CodingTest.AC20190513;

/**leetcode - 423
 *给定一个非空字符串，其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。

 注意:

 输入只包含小写英文字母。
 输入保证合法并可以转换为原始的数字，这意味着像 "abc" 或 "zerone" 的输入是不允许的。
 输入字符串的长度小于 50,000。
 示例 1:

 输入: "owoztneoer"

 输出: "012" (zeroonetwo)
 示例 2:

 输入: "fviefuro"

 输出: "45" (fourfive)
 */
public class originalDigits {
    public String originalDigits(String s){
        int[] book = new int[10];
        for(int i =0;i<s.length();i++){
            char c = s.charAt(i);
            if(c == 'z') book[0]++;//唯一
            else if(c == 'w')book[2]++;//唯一
            else if(c =='x')book[6]++;//唯一
            else if(c == 's')book[7]++;//因为seven中‘s’标识在six中也包含所以book[7]-=book[6]
            else if(c == 'g')book[8]++;//唯一
            else if(c == 'u')book[4]++;//唯一
            else if(c == 'f')book[5]++;//因为five中‘f’标识在four中也包含所以book[5]-=book[4]
            else if(c == 'h')book[3]++;//因为three中‘h’标识在eight中也包含所以book[3]-=book[8]
            else if(c == 'i')book[9]++;//因为nine中‘i’标识在six中,five中，eight中也包含所以book[9]-=book[6]+book[5]+book[8]
            else if(c == 'o')book[1]++;//因为one中‘o’标识在zero中,two中，four中也包含所以book[1]-=book[0]+book[2]+book[4]
        }
        book[7] -= book[6];
        book[5] -= book[4];
        book[3] -= book[8];
        book[9] -= book[6]+book[5]+book[8];
        book[1] -= book[0]+book[2]+book[4];
        StringBuffer res = new StringBuffer();
        for(int i =0;i<10;i++){
            for(int j = 0;j<book[i];j++){
                res.append(i);
            }
        }
        return res.toString();


    }
}
